package com.luo.backend.dto;

import java.math.BigDecimal;

/**
 * 管理员-平台概览统计响应DTO
 */
public class AdminOverviewStatisticsResponse {
    
    private UserStats userStats;
    private MerchantStats merchantStats;
    private OrderStats orderStats;
    private RevenueStats revenueStats;
    
    public static class UserStats {
        private Long totalUsers;
        private Long customerCount;
        private Long merchantCount;
        private Long activeUsers;
        private Long todayNewUsers;
        private Long weekNewUsers;
        
        // Getters and Setters
        public Long getTotalUsers() { return totalUsers; }
        public void setTotalUsers(Long totalUsers) { this.totalUsers = totalUsers; }
        
        public Long getCustomerCount() { return customerCount; }
        public void setCustomerCount(Long customerCount) { this.customerCount = customerCount; }
        
        public Long getMerchantCount() { return merchantCount; }
        public void setMerchantCount(Long merchantCount) { this.merchantCount = merchantCount; }
        
        public Long getActiveUsers() { return activeUsers; }
        public void setActiveUsers(Long activeUsers) { this.activeUsers = activeUsers; }
        
        public Long getTodayNewUsers() { return todayNewUsers; }
        public void setTodayNewUsers(Long todayNewUsers) { this.todayNewUsers = todayNewUsers; }
        
        public Long getWeekNewUsers() { return weekNewUsers; }
        public void setWeekNewUsers(Long weekNewUsers) { this.weekNewUsers = weekNewUsers; }
    }
    
    public static class MerchantStats {
        private Long totalMerchants;
        private Long activeMerchants;
        private Long closedMerchants;
        private Long totalFoods;
        private Long activeFoods;
        
        // Getters and Setters
        public Long getTotalMerchants() { return totalMerchants; }
        public void setTotalMerchants(Long totalMerchants) { this.totalMerchants = totalMerchants; }
        
        public Long getActiveMerchants() { return activeMerchants; }
        public void setActiveMerchants(Long activeMerchants) { this.activeMerchants = activeMerchants; }
        
        public Long getClosedMerchants() { return closedMerchants; }
        public void setClosedMerchants(Long closedMerchants) { this.closedMerchants = closedMerchants; }
        
        public Long getTotalFoods() { return totalFoods; }
        public void setTotalFoods(Long totalFoods) { this.totalFoods = totalFoods; }
        
        public Long getActiveFoods() { return activeFoods; }
        public void setActiveFoods(Long activeFoods) { this.activeFoods = activeFoods; }
    }
    
    public static class OrderStats {
        private Long totalOrders;
        private Long pendingOrders;
        private Long processingOrders;
        private Long completedOrders;
        private Long cancelledOrders;
        private Long todayOrders;
        private Long weekOrders;
        
        // Getters and Setters
        public Long getTotalOrders() { return totalOrders; }
        public void setTotalOrders(Long totalOrders) { this.totalOrders = totalOrders; }
        
        public Long getPendingOrders() { return pendingOrders; }
        public void setPendingOrders(Long pendingOrders) { this.pendingOrders = pendingOrders; }
        
        public Long getProcessingOrders() { return processingOrders; }
        public void setProcessingOrders(Long processingOrders) { this.processingOrders = processingOrders; }
        
        public Long getCompletedOrders() { return completedOrders; }
        public void setCompletedOrders(Long completedOrders) { this.completedOrders = completedOrders; }
        
        public Long getCancelledOrders() { return cancelledOrders; }
        public void setCancelledOrders(Long cancelledOrders) { this.cancelledOrders = cancelledOrders; }
        
        public Long getTodayOrders() { return todayOrders; }
        public void setTodayOrders(Long todayOrders) { this.todayOrders = todayOrders; }
        
        public Long getWeekOrders() { return weekOrders; }
        public void setWeekOrders(Long weekOrders) { this.weekOrders = weekOrders; }
    }
    
    public static class RevenueStats {
        private BigDecimal totalRevenue;
        private BigDecimal todayRevenue;
        private BigDecimal weekRevenue;
        private BigDecimal monthRevenue;
        private BigDecimal avgOrderAmount;
        
        // Getters and Setters
        public BigDecimal getTotalRevenue() { return totalRevenue; }
        public void setTotalRevenue(BigDecimal totalRevenue) { this.totalRevenue = totalRevenue; }
        
        public BigDecimal getTodayRevenue() { return todayRevenue; }
        public void setTodayRevenue(BigDecimal todayRevenue) { this.todayRevenue = todayRevenue; }
        
        public BigDecimal getWeekRevenue() { return weekRevenue; }
        public void setWeekRevenue(BigDecimal weekRevenue) { this.weekRevenue = weekRevenue; }
        
        public BigDecimal getMonthRevenue() { return monthRevenue; }
        public void setMonthRevenue(BigDecimal monthRevenue) { this.monthRevenue = monthRevenue; }
        
        public BigDecimal getAvgOrderAmount() { return avgOrderAmount; }
        public void setAvgOrderAmount(BigDecimal avgOrderAmount) { this.avgOrderAmount = avgOrderAmount; }
    }
    
    // Getters and Setters
    public UserStats getUserStats() { return userStats; }
    public void setUserStats(UserStats userStats) { this.userStats = userStats; }
    
    public MerchantStats getMerchantStats() { return merchantStats; }
    public void setMerchantStats(MerchantStats merchantStats) { this.merchantStats = merchantStats; }
    
    public OrderStats getOrderStats() { return orderStats; }
    public void setOrderStats(OrderStats orderStats) { this.orderStats = orderStats; }
    
    public RevenueStats getRevenueStats() { return revenueStats; }
    public void setRevenueStats(RevenueStats revenueStats) { this.revenueStats = revenueStats; }
}







